package chapter02

object Test07_Function5 {
  def main(args: Array[String]): Unit = {
    //递归 自己调用自己
    //阶乘
    /*
    1！ = 1 = f(1)
    2！ = 2*1 = f(2) = 2*f(1)
    3！ = 3*2*1 = f(3) = 3*f(2)
    4！ = 4*3*2*1 = f(4) = 4*f(3)
    5！ = 5*4*3*2*1 = f(5) = 5*f(4)=5*4*f(3)=5*4*3*f(2)=5*4*3*2*f(1)
    5*4*3*2*1
    n! = f(n) = n*f(n-1)
     */
    def f(n:Int):Int={
      if(n==1) 1 else n*f(n-1)
    }
    println(f(5))
  }
}
